This invention relates to apparatus for solving control problems and more particularly to a computer architecture for implementing real-time controllers.
The use of conventional microprocessors for real-time control represents an adaptation of a tool developed for information processing and data manipulation, such as encountered in the business world, into a tool for control purposes. The Von Neumann architecture of conventional microprocessors, which do sequential processing, is very inefficient for control purposes. Hence a different tool is needed for solving control problems in real time in a more efficient manner. With the decreasing cost of integrated circuits it becomes feasible to devise special-purpose devices aimed at a particular class of applications. While there are numerous examples of architectures for signal processing, few control type architectures exist, primarily becaust most real-time control applications appear not to be too demanding of general-purpose microprocessors in terms of speed and performance. The need for a special control-oriented architecture exists for two reasons--for fulfilling the needs of more demanding applications than can be served by commercial microprocesssors, and for improving the ease with which applications can be implemented. The availability of a more powerful tool will open up more of the demanding applications that could not be done with microprocessors.
The ease of implmentation issue arises from the fact that the new architecture provides support for manipulating the status of the controller rather than simply bit or byte manipulation and in that sense raises the level of implementation and brings it closer to the highest level description of the controller, which is the state transition specification level. With conventional architectures, real-time control problems are solved by using ploys such as multi-tasking and real-time clock interrupts to simulate the occurrence of iteration steps. Processes that occur in parallel are simulated in sequential fashion. Thus real-time controllers become difficult to design, code and debug. There is a tremendous degradation in speed of computation and a corresponding increase in complexity as the order of the controller increases, where the order is defined as the number of internal states required to represent the controller.
The concurrent processor architecture for control characterizes a controller in terms of the sets of continuous and discrete states of the system and logically as well as physically separates the two sets. This dichotomy results in a simpler specification of the rules for state transitions. For continuous states, the state equation representation of a continuous control is a convenient way to specify the behavior of the controller; whereas, for discrete states, Boolean functions are a convenient way of specifying the behavior of a discrete controller or a finite-state machine. Since a real-time controller generally requires interaction between its continuous and discrete states, there must be provision for the continuous states to affect the discrete and vice versa. Comparison actions define the operation whereby the continous states affect the discrete. However, the effects of a discrete variable on the controller are many--state equation coefficients may need to be modified in arbitrary ways or new inputs may need to be applied to the state equations as discrete variables change state.